/*
 * ContextListener.java
 *
 * Created on 8 de noviembre de 2006, 04:32 PM
 */

package com.src.computec.gestion.carguegestion.listener;

import com.src.computec.gestion.carguegestion.dao.ArchivosFileDAO;
import com.src.computec.gestion.carguegestion.demonio.PoolArchivosDemonio;
import com.src.computec.gestion.carguegestion.dto.ArchivoDto;
import com.src.computec.gestion.carguegestion.utilidades.ConstantesGenerales;
import java.util.ArrayList;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;

/**
 *
 * @author  jlperea
 * @version
 *
 * Web application lifecycle listener.
 */

public class ContextListener implements ServletContextListener {
    /**
     * ### Method from ServletContextListener ###
     * 
     * Called when a Web application is first ready to process requests
     * (i.e. on Web server startup and when a context is added or reloaded).
     * 
     * For example, here might be database connections established
     * and added to the servlet context attributes.
     */
    public void contextInitialized(ServletContextEvent evt) 
    {
        System.out.println("ContextListener: contextInitialized: Inicio ************************");
        ConstantesGenerales constantes = ConstantesGenerales.getInstance();
        ConstantesGenerales.TABLA_ARCHIVOS.clear();
        ConstantesGenerales.ARCHIVOS_EN_PROCESO = 0;
        ConstantesGenerales.CONTADOR = 0;
        
        ArrayList lista = PoolArchivosDemonio.getListaArchivos();
        
        long max = 0; 
        
        for(int i = 0; i < lista.size(); i++)
        {
            String[] datosArchivo = (String[])lista.get(i);
            Long idArchivo = new Long(datosArchivo[0]);
            
            if(idArchivo.longValue() > max)
            {
                max = idArchivo.longValue();
            }
            
            ArchivoDto archivoDto = new ArchivoDto();
            archivoDto.setId(idArchivo);
            archivoDto.setIdUser(datosArchivo[1]);
            archivoDto.setCodigoProveedor(datosArchivo[2]);
            ConstantesGenerales.TABLA_ARCHIVOS.put(idArchivo,archivoDto);
        }
        ConstantesGenerales.CONTADOR = max + 1;
        
        Thread t = new Thread(new PoolArchivosDemonio());        
        t.start();
        System.out.println("ContextListener: contextInitialized: Termino Inicio  *******************");
    }

    /**
     * ### Method from ServletContextListener ###
     * 
     * Called when a Web application is about to be shut down
     * (i.e. on Web server shutdown or when a context is removed or reloaded).
     * Request handling will be stopped before this method is called.
     * 
     * For example, the database connections can be closed here.
     */
    public void contextDestroyed(ServletContextEvent evt) 
    {        
    }
}
